Various types of applications execute on servers of cloud computing systems to provide different network functionalities and services. These applications are unique in various ways with regard to the types and amount of computing resources (e.g., processor cycles, memory, network bandwidth, etc.) that are needed to support the execution of such applications. For example, different applications have different memory requirements. Since it is prohibitively expensive to provision a computing system with the maximum amount of physical memory that may be needed by any particular application, a computing system can utilize virtual memory though a virtual memory management system. As is known in the art, virtual memory is an operating system feature that compensates for a shortage of physical memory (e.g., RAM (random access memory)) by temporarily transferring pages of data from the physical memory to a secondary storage such as disk storage (e.g., HDD (hard disk drive) storage).
In particular, in a virtual memory system, program code of a given application is written to expect a large, virtual memory range. The operating system of the host server manages a large virtual address space, as well as a much smaller range of expensive, physical memory. The operating system assigns physical memory to virtual memory. In the event that a requested page of memory is not present in the physical memory, the operating system will fetch that page from a large, inexpensive, backing store. Traditionally, this backing store has been based on HDD storage. However, conventional storage stacks that rely on a HDD backing store, for example, provide low-latency backing storage support, which can unduly throttle modern application performance. Indeed, high-performance applications such as in-memory databases require access to large amounts of physical memory to avoid the latencies associated with accessing data via a traditional storage stack.